These are the commands that relate to saving and writing files.
Save the current buffer to its file
(save-buffer).
Save any or all buffers to their files
(save-some-buffers).
Forget that the current buffer has been changed
(not-modified). With prefix argument
(C-u), mark the current buffer as changed.
Save the current buffer with a specified file name
(write-file).
Change the file name under which the current buffer will be saved.
When you wish to save the file and make your changes
permanent, type C-x C-s (save-buffer).
After saving is finished, C-x C-s displays a message
like this:
Wrote /u/rms/gnu/gnu.tasks
If the current buffer is not modified (no changes have been made in it since the buffer was created or last saved), saving is not really done, because it would have no effect. Instead, C-x C-s displays a message like this in the echo area:
(No changes need to be saved)
With a prefix argument, C-u C-x C-s, Emacs also marks the buffer to be backed up when the next save is done. See Backup.
The command C-x s (save-some-buffers)
offers to save any or all modified buffers. It asks you what to
do with each buffer. The possible responses are analogous to
those of query-replace:
Save this buffer and ask about the rest of the buffers.
Don’t save this buffer, but ask about the rest of the buffers.
Save this buffer and all the rest with no more questions.
Terminate save-some-buffers without any more
saving.
Save this buffer, then exit save-some-buffers
without even asking about other buffers.
View the buffer that you are currently being asked about.
When you exit View mode, you get back to
save-some-buffers, which asks the question
again.
Diff the buffer against its corresponding file, so you can
see what changes you would be saving. This calls the command
diff-buffer-with-file (see Comparing
Files).
Display a help message about these options.
C-x C-c, the key sequence to exit Emacs, invokes
save-some-buffers and therefore asks the same
questions.
If you have changed a buffer but do not wish to save the
changes, you should take some action to prevent it. Otherwise,
each time you use C-x s or C-x C-c, you are
liable to save this buffer by mistake. One thing you can do is
type M-~ (not-modified), which clears out
the indication that the buffer is modified. If you do this, none
of the save commands will believe that the buffer needs to be
saved. (‘~’ is often used as a
mathematical symbol for “not”; thus M-~ is
“not”, metafied.) Alternatively, you can cancel all
the changes made since the file was visited or saved, by reading
the text from the file again. This is called reverting.
See Reverting. (You could
also undo all the changes by repeating the undo command C-x
u until you have undone all the changes; but reverting is
easier.)
M-x set-visited-file-name alters the name of the
file that the current buffer is visiting. It reads the new file
name using the minibuffer. Then it marks the buffer as visiting
that file name, and changes the buffer name correspondingly.
set-visited-file-name does not save the buffer in
the newly visited file; it just alters the records inside Emacs
in case you do save later. It also marks the buffer as modified
so that C-x C-s in that buffer will
save.
If you wish to mark the buffer as visiting a different file
and save it right away, use C-x C-w
(write-file). This is equivalent to
set-visited-file-name followed by C-x
C-s, except that C-x C-w asks for confirmation
if the file exists. C-x C-s used on a buffer that is
not visiting a file has the same effect as C-x C-w;
that is, it reads a file name, marks the buffer as visiting that
file, and saves it there. The default file name in a buffer that
is not visiting a file is made by combining the buffer name with
the buffer’s default directory (see File Names).
If the new file name implies a major mode, then C-x
C-w switches to that major mode, in most cases. The command
set-visited-file-name also does this. See Choosing Modes.
If Emacs is about to save a file and sees that the date of the latest version on disk does not match what Emacs last read or wrote, Emacs notifies you of this fact, because it probably indicates a problem caused by simultaneous editing and requires your immediate attention. See Simultaneous Editing.